package com.ybkj.daijia.server.mapper;

import com.ybkj.daijia.server.model.PhoneRecord;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface PhoneRecordMapper {

    /**
     * 保存通话记录
     *
     * @param record
     * @return
     */
    int insertRecord(PhoneRecord record);

    /**
     * 根据主键查询司机通话记录
     *
     * @param id
     * @return
     */
    PhoneRecord selectByPrimaryKey(Long id);

    /**
     * 根据司机和通话日前查询通话记录
     *
     * @param driverId
     * @param phoneDate
     * @return
     */
    List<PhoneRecord> selectByDriverAndPhoneDate(
        @Param("driverId") Long driverId,
        @Param("phoneDate") String phoneDate);

    /**
     * 根据一组id查询司机通话记录
     *
     * @param ids
     * @return
     */
    List<PhoneRecord> selectByIdIn(Long ids[]);

    /**
     * 分页查询通话记录
     *
     * @param offset
     * @param size
     * @return
     */
    List<PhoneRecord> selectByPage(@Param("offset") Integer offset,
        @Param("size") Integer size);

    /**
     * 根据条件模糊分页查询
     *
     * @param companyId
     * @param name
     * @param offset
     * @param size
     * @return
     */
    List<PhoneRecord> selectByCompanyAndLike(
        @Param("companyId") Long companyId, @Param("name") String name,
        @Param("offset") Integer offset, @Param("size") Integer size);

    /**
     * 统计所有通话记录
     *
     * @return
     */
    long countByPage();

    /**
     * 根据条件模糊统计通话记录
     *
     * @param companyId
     * @param name
     * @return
     */
    long countByCompanyAndLike(@Param("companyId") Long companyId,
        @Param("name") String name);

    /**
     * 根据主键删除通话记录
     *
     * @param id
     * @return
     */
    int deleteByPrimaryKey(Long id);

    /**
     * 根据一组主键删除通话记录
     *
     * @param ids
     * @return
     */
    int batchDeleteByPrimaryKey(Long[] ids);

    /**
     * 根据主键更新通话记录
     *
     * @param phoneRecord
     * @return
     */
    int updateByPrimaryKey(PhoneRecord phoneRecord);
}
